#pragma once
#include "define.h"
#include "color.h"

namespace gm {
    // I[5][5] O[3][3]
    using Tetromino_1 = std::vector<std::vector<int>>;
    extern Tetromino_1 I, J, L, O, S, T, Z;

    Tetromino_1 rotate(Tetromino_1 &t);

    extern std::map<int, Color> tetro_color;

    // ------------------------------------------------------------
    using Tetromino_2 = std::array<int, 4>;
    extern Tetromino_2 I_set, J_set, L_set,  O_set, S_set, T_set, Z_set;
    bool get_bit(int t, int i, int j);

    // ------------------------------------------------------------
    /**
     *      ^ y
     *      |
     *      |
     *      |
     * --0--0--0--0---------> x
    */
   using Tetromino_3 = std::array<std::array<std::pair<int, int>,4>,4>;
   extern Tetromino_3 i;

}